Lazy Loading হল একটি কৌশল যা ওয়েব অ্যাপ্লিকেশন বা পেজে শুধুমাত্র প্রয়োজনীয় অংশগুলি লোড করার মাধ্যমে পারফরম্যান্স উন্নত করতে সহায়ক। এটি বিশেষভাবে বড় অ্যাপ্লিকেশনগুলির ক্ষেত্রে কার্যকর, যেখানে সমস্ত রিসোর্স একসাথে লোড করার পরিবর্তে, অ্যাপ্লিকেশনের বিভিন্ন অংশ আলাদাভাবে এবং যখন প্রয়োজন তখন লোড করা হয়।
Ember.js-এ Lazy Loading এর সুবিধা পাওয়া যায় Routes এবং Components এর মাধ্যমে, যেখানে নির্দিষ্ট রাউট বা কম্পোনেন্ট কেবলমাত্র যখন তা প্রয়োজন হয় তখনই লোড হয়।
1. Lazy Loading Routes
Ember.js-এ Lazy Loading রাউটগুলির জন্য import() সিনট্যাক্স ব্যবহার করা হয়, যা রাউটের মডিউলকে ডাইনামিকভাবে লোড করে। এটি অ্যাপ্লিকেশনের পারফরম্যান্স উন্নত করতে সহায়ক, কারণ ব্যবহারকারী যদি নির্দিষ্ট রাউটে না যায় তবে তা লোড করা হয় না।
Lazy Loading Route এর উদাহরণ
ধরা যাক, আপনার একটি অ্যাপ্লিকেশন যেখানে দুটি রাউট রয়েছে: Home এবং About। আপনি চান যে About রাউটটি শুধুমাত্র যখন ব্যবহারকারী সেই রাউটে যাবে তখনই লোড হোক।
১.1 Route কনফিগারেশন:
app/router.js ফাইলে রাউট কনফিগারেশন করতে হবে:
import EmberRouter from '@ember/routing/router';
import config from './config/environment';
const Router = EmberRouter.extend({
location: config.locationType,
rootURL: config.rootURL
});
Router.map(function() {
this.route('home');
this.route('about', function() {
// About route will be lazy-loaded here
});
});
export default Router;
১.2 Lazy Load Route:
এখন, About রাউটকে Lazy Load করার জন্য import() ব্যবহার করা হবে। app/router.js ফাইলে এটি কনফিগার করতে হবে:
import EmberRouter from '@ember/routing/router';
import config from './config/environment';
const Router = EmberRouter.extend({
location: config.locationType,
rootURL: config.rootURL
});
Router.map(function() {
this.route('home');
this.route('about', function() {
// Lazy load the about route when needed
import('app/routes/about').then((module) => {
this.route('about', module.default);
});
});
});
export default Router;
এখানে, About রাউটটি import() ব্যবহার করে শুধুমাত্র যখন প্রয়োজন হয় তখনই লোড হবে। এটি অ্যাপ্লিকেশনের শুরুতে About রাউটটি লোড না করে অ্যাপ্লিকেশন স্টার্টিং স্পিড বাড়াতে সাহায্য করবে।
2. Lazy Loading Components
Ember.js-এ Lazy Loading Components এর মাধ্যমে কম্পোনেন্টগুলো শুধুমাত্র তখনই লোড হবে যখন তারা ব্যবহারকারীকে প্রয়োজন হবে। এটি অ্যাপ্লিকেশনের লোড সময় কমাতে সহায়ক।
Lazy Loading Component এর উদাহরণ
ধরা যাক, আপনার একটি UserProfile কম্পোনেন্ট আছে, যা কেবলমাত্র HomePage এ ব্যবহৃত হয়। Lazy Loading এর মাধ্যমে এটি তখনই লোড হবে যখন সেই কম্পোনেন্টটি ব্যবহার করা হবে।
২.১ Component Load করতে import() ব্যবহার করা
app/components/user-profile.js ফাইলে কম্পোনেন্ট কনফিগারেশন থাকবে:
// app/components/user-profile.js
import Component from '@glimmer/component';
export default class UserProfileComponent extends Component {
// কম্পোনেন্টের লজিক
}
এখন, কম্পোনেন্টটি Lazy Load করতে হবে যখন এটি HomePage-এ ব্যবহার হবে। আমরা import() সিনট্যাক্স ব্যবহার করব।
২.২ Lazy Loading Component in Template
// app/templates/home.hbs
{{!-- Lazy load UserProfile component --}}
{{#if this.showProfile}}
<UserProfile />
{{/if}}
২.৩ Lazy Load Component via import()
এখন, app/components/home.js ফাইলে UserProfile কম্পোনেন্ট লোড করতে import() ব্যবহার করুন।
// app/components/home.js
import Component from '@glimmer/component';
export default class HomeComponent extends Component {
showProfile = false;
async loadProfile() {
const { default: UserProfile } = await import('../components/user-profile');
this.UserProfile = UserProfile;
this.showProfile = true;
}
}
এখানে, আমরা UserProfile কম্পোনেন্টটি import() সিনট্যাক্সের মাধ্যমে সেভাবে লোড করেছি, যখন showProfile ভ্যালু true হবে এবং কম্পোনেন্টটি রেন্ডার হবে।
3. Lazy Loading এর সুবিধা
- পারফরম্যান্স উন্নতি: শুধুমাত্র প্রয়োজনীয় রাউট বা কম্পোনেন্ট লোড হওয়ায় অ্যাপ্লিকেশনের স্টার্ট আপ সময় দ্রুত হবে।
- ওভারহেড কমানো: অ্যাপ্লিকেশন শুরু করার সময় সমস্ত রিসোর্স লোড না করে, শুধুমাত্র প্রয়োজনীয় রিসোর্স লোড করা যায়।
- ইউজার ইন্টারফেস দ্রুত লোড: ব্যবহারকারী যখন একটি নির্দিষ্ট রাউট বা কম্পোনেন্টের সাথে যোগাযোগ করে, তখনই তা লোড হয়, ফলে ইউজার ইন্টারফেস দ্রুত প্রদর্শিত হয়।
Ember.js-এ Lazy Loading একটি অত্যন্ত কার্যকরী কৌশল, যা অ্যাপ্লিকেশনের পারফরম্যান্স উন্নত করতে সাহায্য করে। Routes এবং Components এর জন্য Lazy Loading ব্যবহারের মাধ্যমে অ্যাপ্লিকেশনটি আরও দ্রুত এবং স্কেলেবল হয়। import() সিনট্যাক্স এবং Ember.js এর route এবং component সিস্টেমের মাধ্যমে আপনি সহজেই আপনার অ্যাপ্লিকেশনের কার্যকারিতা এবং পারফরম্যান্স উন্নত করতে পারবেন।
Read more